package 对数器打表找规律的技巧;


// 判断一个数字是否是若干数量(数量>1)的连续正整数的和
public class Code03_IsSumOfConsecutiveNumbers {

    public static boolean is1(int num){
        for(int start = 1, sum; start <= num; start++){
            sum = start;
            for (int j = start + 1; j <= num; j++){
                if(sum + j > num){
                    break;
                }
                if(sum + j == num){
                    return true;
                }
                sum += j;
            }
        }
        return false;
    }

    public static boolean is2(int num){
        //位运算：获取最右侧的1。2的幂次数返回false，2的幂次只有一个1
        // if((num & (-num)) == num){
        //     return false;
        // }
        // return true;
        return (num & (num - 1)) != 0;
    }

    public static void main(String[] args) {
        for(int i = 1; i < 100; i++){
            // System.out.println(i + "：" + is1(i));
            System.out.println(i + "：" + is2(i));
        }
    }
}
